using System;
using AntEater.ComponentModel;
using AntEater.ComponentModel.Building;

namespace AntEater.Runtime.Services.Building
{
    /// <summary>
    /// Context for the building loggers.
    /// </summary>
    public class BuildingLoggerContext
    {
        /// <summary>
        /// Initializes a new instance of the <see cref="BuildingLoggerContext"/> class.
        /// </summary>
        /// <param name="output">The output.</param>
        public BuildingLoggerContext(Output output)
            : this(output, BuildingLoggerVerbosity.Minimal) {
        }

        /// <summary>
        /// Initializes a new instance of the <see cref="BuildingLoggerContext"/> class.
        /// </summary>
        /// <param name="output">The output.</param>
        /// <param name="verbosity">The verbosity.</param>
        public BuildingLoggerContext(Output output, BuildingLoggerVerbosity verbosity) {
            this._output = output;
            this._verbosity = verbosity;
        }

        private Output _output;

        /// <summary>
        /// Gets the output.
        /// </summary>
        /// <value>The output.</value>
        public Output Output {
            get { return _output; }
        }

        private BuildingLoggerVerbosity _verbosity;

        /// <summary>
        /// Gets or sets the verbosity.
        /// </summary>
        /// <value>The verbosity.</value>
        public BuildingLoggerVerbosity Verbosity {
            get { return _verbosity; }
            set { _verbosity = value; }
        }
    }
}
